﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using DTOMedicalProject;
using MRAccesoDatos;

namespace BllMedicalRecord
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "MedicalRecordBll" in code, svc and config file together.
    public class MedicalRecordBll : IMedicalRecordBll
    {
        public void DoWork()
        {
        }

#region Mantenimiento de usuario
        /// <summary>
        /// Region compredida para los metodos del mantenimiento de usuario.
        /// </summary>
        /// <param name="usrUsuario"></param>
        /// <returns></returns>
        public DTORespuesta CrearUsuario(DTOUsuario usrUsuario)
        {
            DTORespuesta resp = new DTORespuesta();
            clsUsuario mgusuario = new clsUsuario();
            resp = mgusuario.InsertarUsuario(usrUsuario);

            return resp;
        }

        public DTORespuesta ActualizarUsuario(DTOUsuario usrUsuario)
        {
            DTORespuesta resp = new DTORespuesta();
            clsUsuario mgusuario = new clsUsuario();
            resp = mgusuario.ActualizarUsuario(usrUsuario);

            return resp;
        }

        public DTORespuesta EliminarUsuario(DTOUsuario usrUsuario)
        {
            DTORespuesta resp = new DTORespuesta();
            clsUsuario mgusuario = new clsUsuario();
            resp = mgusuario.EliminarUsuario(usrUsuario);

            return resp;
        }

        public DTOUsuario ObtenerUsuarioxId(DTOUsuario usrUsuario)
        {
            DTOUsuario user = new DTOUsuario();
            clsUsuario mgusuario = new clsUsuario();

            user = mgusuario.ObtenerUsuarioxId(usrUsuario);

            return user;
        }

        public List<DTOUsuario> ObtenerUsuarios()
        {
            List<DTOUsuario> dtusuarios = new List<DTOUsuario>();
            clsUsuario mgusuario = new clsUsuario();
            try
            {
                dtusuarios = mgusuario.ObtenerUsuarios();
            }
            catch (Exception ex)
            {

                throw new Exception("Ocurrio un error obteniendo los datos. " + ex.Message);
            }
            

            return dtusuarios;

        }

#endregion


#region Mantenimiento Tipo Usuario

       public DTORespuesta CrearTipoUsuario(DTOTipoUsuario tpTipoUsuario)
        {
            DTORespuesta resp = new DTORespuesta();
            clsTipoUsuario mgtipousuario = new clsTipoUsuario();
            resp = mgtipousuario.InsertaTipoUsuario(tpTipoUsuario);

            return resp;
        }

       public DTORespuesta ActualizarTipoUsuario(DTOTipoUsuario tpTipoUsuario)
       {
           DTORespuesta resp = new DTORespuesta();
           clsTipoUsuario mgtipousuario = new clsTipoUsuario();
           resp = mgtipousuario.ActualizarTipoUsuario(tpTipoUsuario);

           return resp;
       }

       public DTORespuesta EliminarTipoUsuario(DTOTipoUsuario tpTipoUsuario)
       {
           DTORespuesta resp = new DTORespuesta();
           clsTipoUsuario mgtipousuario = new clsTipoUsuario();
           resp = mgtipousuario.EliminarTipoUsuario(tpTipoUsuario);

           return resp;
       }


        public List<DTOTipoUsuario> ObtenerTipoUsuarios()
        {
            
            List<DTOTipoUsuario> dttipousuario = new List<DTOTipoUsuario>();
            clsTipoUsuario mgtipousuario = new clsTipoUsuario();
            dttipousuario = mgtipousuario.ObtenerTipoUsuario();

            return dttipousuario;
        }
        

#endregion

#region Mantenimiento Tipo_Afiliacion

        public List<DTOTipoAfiliacion>ObtenerTipoAfiliacion()
        {
            List<DTOTipoAfiliacion> dttipoafiliacion = new List<DTOTipoAfiliacion>();
            clsTipoAfiliacion mgtipoafiliacion = new clsTipoAfiliacion();
            dttipoafiliacion = mgtipoafiliacion.ObtenerTipoAfiliacion();

            return dttipoafiliacion;
        }

        public DTORespuesta CrearTipoAfiliacion(DTOTipoAfiliacion tpTipoAfiliacion)
        {
            DTORespuesta resp = new DTORespuesta();
            clsTipoAfiliacion mgtipoafiliacion = new clsTipoAfiliacion();
            resp = mgtipoafiliacion.InsertarTipoAfiliacion(tpTipoAfiliacion);

            return resp;
        }

        public DTORespuesta ActualizarTipoAfiliacion(DTOTipoAfiliacion tpTipoAfiliacion)
        {
            DTORespuesta resp = new DTORespuesta();
            clsTipoAfiliacion mgtipoafiliacion = new clsTipoAfiliacion();
            resp = mgtipoafiliacion.ActualizarTipoAfiliacion(tpTipoAfiliacion);

            return resp;
        }

        public DTORespuesta EliminarTipoAfiliacion(DTOTipoAfiliacion tpTipoAfiliacion)
        {
            DTORespuesta resp = new DTORespuesta();
            clsTipoAfiliacion mgtipoafiliacion = new clsTipoAfiliacion();
            resp = mgtipoafiliacion.EliminarTipoAfiliacion(tpTipoAfiliacion);

            return resp;
        }


        
#endregion

#region Mantenimiento Perfiles

        public List<DTOPerfil> ObtenerPerfiles()
        {
            List<DTOPerfil> dtperfil = new List<DTOPerfil>();
            clsPerfil mgperfil = new clsPerfil();
            dtperfil = mgperfil.ObtenerPerfil();

            return dtperfil;
        }

        public DTORespuesta CrearPerfil(DTOPerfil tpPerfil)
        {
            DTORespuesta resp = new DTORespuesta();
            clsPerfil mgperfil = new clsPerfil();
            resp = mgperfil.InsertaPerfil(tpPerfil);

            return resp;
        }

        public DTORespuesta ActualizarPerfil(DTOPerfil tpPerfil)
        {
            DTORespuesta resp = new DTORespuesta();
            clsPerfil mgperfil = new clsPerfil();
            resp = mgperfil.ActualizarPerfil(tpPerfil);

            return resp;
        }

        public DTORespuesta EliminarPerfil(DTOPerfil tpPerfil)
        {
            DTORespuesta resp = new DTORespuesta();
            clsPerfil mgperfil = new clsPerfil();
            resp = mgperfil.EliminarPerfil(tpPerfil);

            return resp;
        }


#endregion

#region Mantenimiento Pais

        public List<DTOPais> ObtenerPais()
        {
            List<DTOPais> dtpais = new List<DTOPais>();
            clsPais mgpais = new clsPais();
            dtpais = mgpais.ObtenerPais();

            return dtpais;
        }

        public DTORespuesta CrearPais(DTOPais tppais)
        {
            DTORespuesta resp = new DTORespuesta();
            clsPais mgpais = new clsPais();

           
           
            resp = mgpais.InsertarPais(tppais);
           
           

            return resp;
        }


        public DTORespuesta ActualizarPais(DTOPais tppais)
        {
            DTORespuesta resp = new DTORespuesta();
            clsPais mgpais = new clsPais();
            resp = mgpais.ActualizaPais(tppais);

            return resp;
        }

        public DTORespuesta EliminarPais(DTOPais tppais)
        {
            DTORespuesta resp = new DTORespuesta();
            clsPais mgpais = new clsPais();
            resp = mgpais.EliminarPais(tppais);

            return resp;
        }


#endregion


    }
}
